<?php

/**
* alltosun.com 信息中心共用函数 message_center_helper.php
* ============================================================================
* 版权所有 (C) 2009-2014 北京互动阳光科技有限公司，并保留所有权利。
* 网站地址: http://www.alltosun.com
* ----------------------------------------------------------------------------
* 许可声明: 这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
* ============================================================================
* $Author: 高昂 (gaoa@alltosun.com) $
* $Date: 2014-8-8 下午6:52:59 $
* $Id$
*/

class message_center_helper
{
    private static $per_page = 20;


    /**
    * 获取消息用户关系表中登陆用户的所有消息id
    * @param $is_read 1:已读 0:未读 2:所有
    * @return array
    */
    public static function get_message_user_msgids_by_userid($user_id, $is_read = 0, $res_name = '')
    {
        if (!$user_id) {
            return false;
        }

        $filter = array();
        $filter['status']  = 1;

        if ($is_read != 2) {
            $filter['is_read'] = $is_read;
        }

        if ($res_name || isset(message_center_config::$res_name_list[$res_name])) {
            $filter['res_name'] = $res_name;
        }

        $filter['user_id'] = $user_id;

        $id_list = array();
        $ids = _model('message_user')->field('msg_id')->getList($filter);
        if (!$ids) {
            return array();
        }

        foreach ($ids as $k => $v) {
            array_push($id_list, $v['msg_id']);
        }

        return $id_list;

    }



    /**
    * 获取登陆用户未读的消息数量总数
    * @param $user_id
    * @param $res_name string 如'group'=>核销,'arrival'=>到货,'event'=>活动,'score'=>积分,'notice'=>公告,如果不传则返回总的未读数
    */
    public static function get_unread_message_num($user_id, $res_name = '')
    {
        if (!$user_id) {
            return false;
        }

        if ($res_name == '') {
        	return Self::insert_message($user_id);
        }

        $message_user_filter = array();
        // 判断分类名称是否合法
        if ($res_name && isset(message_center_config::$res_name_list[$res_name])) {
            $message_user_filter['res_name'] = $res_name;
        } else {
            return false;
        }

        $message_user_filter['user_id'] = $user_id;
        $message_user_filter['status']  = 1;
        $message_user_filter['is_read'] = 0;

        $unread_message_num = _model('message_user')->getTotal($message_user_filter);
        if ($unread_message_num) {
        	return $unread_message_num;
        } else {
            return 0;
        }

    }

    /**
     * 返回总的未读消息数(同时:拉消息)
     * @return 总的未读消息数
     */
    public static function insert_message($user_id, $res_name = '')
    {

        // 获取message_center中推送范围是'所有人'的消息id
        $message_center_filter = array();
        $message_center_filter['status']     = 1;

        // 此处需要根据用户的角色来查询推送范围的消息
        $role_id = user_helper::get_user_role_id($user_id);
        switch ($role_id) {
        	// 经销商
        	case user_config::AGENCY:
        	    $message_center_filter['push_range'] = array(0, 1, 3, 5, 7);
        	    break;
        	case user_config::MARKETING:
        	    $message_center_filter['push_range'] = array(0, 2, 3, 6, 7);
        	    break;
        	case user_config::STORE_MANAGER:
        	case user_config::STORE_OWNER:
        	    $message_center_filter['push_range'] = array(0, 4, 5, 6, 7);
        	    break;
        	default:
        	    $message_center_filter['push_range'] = array(0, 1, 2, 3, 4, 5, 6, 7);
        	    break;
        }
        if ($res_name && isset(message_center_config::$res_name_list[$res_name])) {
            $message_center_filter['res_name'] = $res_name;
        }

        $user_info = user_helper::get_user_info($user_id);
        // 获取用户注册时间
        $user_add_time = $user_info['add_time'];
        
        $message_center_filter['`add_time` >= '] = $user_add_time;
        
        $message_center_all_msg_ids = _model('message_center')->getFields('id', $message_center_filter);

        $message_user_filter = array();
        $message_user_filter['user_id'] = $user_id;
        $message_user_filter['is_all_push'] = 1;

        // 判断分类名称是否合法
        if ($res_name && isset(message_center_config::$res_name_list[$res_name])) {
            $message_user_filter['res_name'] = $res_name;
        }

        $message_user_all_msg_ids = _model('message_user')->getFields('msg_id', $message_user_filter);

        $msg_all_id = array_diff($message_center_all_msg_ids, $message_user_all_msg_ids);

        if (!empty($msg_all_id)) {
            // 将这些推送范围是'所有人'的消息写入到消息用户关系表中
            foreach ($msg_all_id as $k=>$msg_id) {

                $msg_info = _uri('message_center', $msg_id);

                // 获取分店的添加时间
//                 $msg_add_time = $msg_info['add_time'];

                
//                 if ($user_info) {
//                 	$user_add_time = $user_info['add_time'];
//                 } else {
//                     return false;
//                 }
                

//                 if ($user_add_time < $msg_add_time) {
//                 	continue;
//                 }

                // 创建数据
                $msg_user = array();
                $msg_user['user_id'] = $user_id;
                $msg_user['msg_id']  = $msg_id;
                // $msg_user['res_name'] = _model('message_center')->getFields('res_name', array('id'=>$msg_id))['res_name'];
                $msg_center_info = array();
                $msg_center_info = _uri('message_center', $msg_id);
                $msg_user['res_name'] = @$msg_center_info['res_name'];
                if (@$msg_center_info['push_range'] == 8) {
                	$msg_user['is_all_push'] = 0;
                } else {
                    $msg_user['is_all_push'] = 1;
                }
                _model('message_user')->create($msg_user);
            }
        }


        //获取message_user表中范围是'所有人'的未读
        $message_user_filter = array();
        $message_user_filter['is_read'] = 0;
        $message_user_filter['user_id'] = $user_id;
        $message_user_filter['msg_id'] = $msg_all_id;
//         $message_user_all_unread_msg_ids = _model('message_user')->getFields('msg_id', $message_user_filter);
        $unread_message_num = _model('message_user')->getTotal($message_user_filter);
        // return count(array_merge($msg_all_id, $message_user_all_unread_msg_ids));
//         $unread_message_num = count($message_user_all_unread_msg_ids);
        if ($unread_message_num) {
        	return $unread_message_num;
        } else {
            return 0;
        }

    }


    /**
     * 添加消息(不推送,所以范围是个人的)
     * @param $title 消息的标题
     * @param $content 消息的内容(活动和公告需要传,其他类型可以默认是'')
     * @param $res_name 消息类型  到货arrival 核销group 积分score(因为推送范围是个人的所以不存在活动和公告类型)
     * @param $user_id 接受消息的用户id int或array
     */
    public static function add_message($title, $res_name, $user_id, $content='')
    {
        if (!$title || !$res_name || !$user_id) {
            //参数错误
            return false;
        }
        
        if (!isset(message_center_config::$res_name_list[$res_name])) {
            return '消息类型不存在';
        }
        
        // 判断用户id是否是第一家分店
        $store_info = _uri('store', array('user_id'=>$user_id));
        if ($store_info) {
            // 如果是第一家分店
            if (1 == $store_info['store_order'] && 0 != $store_info['agency_id']) {
            	self::add_new_message($title, $res_name, $user_id);
            	self::add_new_message($title, $res_name, $store_info['owner_id']);
            } else {
                self::add_new_message($title, $res_name, $user_id);
            }
        } else {
            return '此店铺不存在!';
        }
        
    }
    
    /**
     * 内部添加消息(不推送,所以范围是个人的)
     * @param $title 消息的标题
     * @param $content 消息的内容(活动和公告需要传,其他类型可以默认是'')
     * @param $res_name 消息类型  到货arrival 核销group 积分score(因为推送范围是个人的所以不存在活动和公告类型)
     * @param $user_id 接受消息的用户id int或array
     */
    private static function add_new_message($title, $res_name, $user_id, $content='')
    {
        if (!$title || !$res_name || !$user_id) {
            //参数错误
            return false;
        }
    
        if (!isset(message_center_config::$res_name_list[$res_name])) {
            return '消息类型不存在';
        }
    
        //创建数据
        $message = array();
        $message['title']      = $title;
        $message['user_id']    = $user_id;
        $message['res_name']   = $res_name;
        $message['push_range'] = 8;//8代表推送是个人的
        $message['add_time']   = date('Y-m-d H:i:s', time());
    
        $msg_id = _model('message_center')->create($message);
    
        if ($msg_id) {
            //存到消息用户关系表
            $message_user = array();
            $message_user['user_id'] = $user_id;
            $message_user['msg_id']  = $msg_id;
            $message_user['is_read'] = 0;
            $message_user['is_all_push'] = 0;
            $message_user['res_name'] = $res_name;
            $msg_user_id = _model('message_user')->create($message_user);
    
             
             
            if ($msg_user_id) {
                /* //处理消息内容
            	    $msg = array();
                $msg['content']  = $message['title'];
                $msg['res_id']   = $msg_id;
                $msg['res_name'] = $res_name;
    
                //获取用户的角色
                $user_role_id = user_helper::get_user_role_id($user_id);
                if ($user_role_id == 5 || $user_role_id == 10) {
                _widget('push')->send($msg, array($user_id), 'manage');
                } else {
                _widget('push')->send($msg, array($user_id), 'store');
                } */
    
                return true;
    
            } else {
                return '消息用户关系表写入失败!';
            }
    
        } else {
            return '消息写入失败!';
        }
    
    }
    
    
    
    

    /**
     * 从config获取指定模板推送消息或者站内信
     * @param  string $config_type config的key
     * @param  int    推送人ID $user_id     [description]
     * @param  array  推送人ID $replace_arr     [description]
     * @return boolean              返回true成功 false失败
     */
    public static function get_config_add_message($config_type, $replace_arr, $user_id, $app_type = 'manage', $res_id = '', $is_message = 0, $message_res_name = 'arrival')
    {
        $push_template_list = message_center_config::$push_template;

        $template_info = $push_template_list[$config_type];
        if(!$template_info) {
            return false;
        }
        $template_title = $template_info['title'];

        foreach($replace_arr as $k => $v) {
            $search = '{'.$k.'}';
            $template_title = str_replace($search, $v, $template_title);
        }
        $role_id = user_helper::get_user_role_id($user_id);
        $msg = array('content' => $template_title, 'res_id'=>'10010', 'res_name' => $template_info['res_name'], 'role_id' => $role_id);
        if($res_id) {
            $msg['res_id'] = $res_id;
        }
        $user_ids = array();
        //把传来的ID变成分店
        $user_ids[] = $user_id;
        //查询店铺信息
        $store_info = store_helper::get_store_info_by_user_id($user_id);
        //判断总店ID是否已经在数组里了
        if($store_info && !in_array($store_info['owner_id'], $user_ids)) {
            $user_ids[] = $store_info['owner_id'];
        }

        $return_result = _widget('push')->send($msg, $user_ids, $app_type);
        if($is_message) {
            $return_status = self::add_message($template_title, $message_res_name, $user_id);
            if($return_status === true) {
                return true;
            } else {
                return false;
            }
        }
        return true;

    }

    /**
     * 更改消息状态由未读变成已读
     * @param $msg_id 消息id
     * @param $table_name 表名
     */
    public static function change_to_isread($msg_id, $user_id, $table_name = 'message_user')
    {

//         if (!is_array($msg_id)) {
//         	$msg_id = explode(',', $msg_id);
//         }

//         foreach ($msg_id as $k=>$v) {
            _model($table_name)->update(array('msg_id'=>$msg_id, 'user_id'=>$user_id), array('is_read' => 1));
//         }

        return true;
    }

    /**
     * @param unknown $res_name
     * @param unknown $data 数组 key值可以是code name user_name store_name phone_num order_id express_name物流公司 express_no物流单号 (后台:score title) 如果一条短信出现多个人名或者商店名时,前面会加上角色作为区分
     * @return multitype:string
     */

    public static function get_push_template($res_name, $data)
    {

        if (!$data) {
        	return false;
        }

        $template = array();

        switch ($res_name){
            // 商户注册获取新密码
            case 'register':
                $template = array(
                    'res_name'     => 'register',
                    'title' => '{$data["store_name"]}您的账号：{$data["user_name"]} 新密码为：{$data["code"]} 欢迎使用抱抱堂门店管理系统。'
                );
                break;
            // 'SMS_4555043' => '{$data["store_name"]}店主您好，您的新密码为：{$data["code"]}，欢迎使用抱抱堂门店管理系统。',
            
            // 商户注册获取验证码
            case 'change_password': 
                $template = array(
                    'res_name'     => 'change_password',
                    'title' => '{$data["store_name"]}您的账号：{$data["user_name"]} 请求的验证码为：{$data["code"]} 输入验证码后将下发新密码。',
                );
                break;
            // 'SMS_4580002' => '{$data["store_name"]}店主您好，您的验证码为：{$data["code"]}，输入验证码后将下发新密码。',
            
            
                
            // 商户进货（店主）
            case 'store_stock_store': 
                $template = array(
                    'res_name'     => 'store_stock',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，正在等待经销商配货，请耐心等候。配送前将会短信通知，谢谢。紧急需求请联系经销商',
                );
                break;
            // 'SMS_4396079' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，正在等待经销商配货，请耐心等候。配送前将会短信通知，谢谢。紧急需求请联系经销商',
            
            // 商户向经销商进货-经销商确认处理（商户）
            case 'store_stock_dealer_confirm_store':
                $template = array(
                'res_name'     => 'store_stock_dealer_confirm_store',
                'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，{$data["name"]}已经开始送货正在前往门店，如有疑问请联系：{$data["phone_num"]}。',
                );
                break;
            // 【商家名】店主您好，您的订单：【订单号】，【经销商名】已经开始送货正在前往门店，如有疑问请联系：【经销商手机】。
                
            // 经销商进货(发给经销商) new
            case 'dealer_stock_dealer' :
                $template = array(
                    'res_name'     => 'dealer_stock',
                    'title' => '经销商您好，您的订单：{$data["order_id"]}，正在等待总部确认，请耐心等候。配送前将会跟您电话确认，谢谢。',
                );
                break;
            // 'SMS_4421160' => '经销商您好，您的订单：{$data["order_id"]}，正在等待总部确认，请耐心等候。配送前将会跟您电话确认，谢谢。',
            
            // 经销商进货(总部确认之后,发给经销商2) new
            case 'dealer_stock_confirmed_dealer' :
                $template = array(
                    'res_name'     => 'dealer_stock_confirmed',
                    'title' => '经销商您好，您的订单：{$data["order_id"]}，总部已经为您发货，物流为：{$data["express_name"]}-{$data["express_no"]}。到货后请在App内确认收货，谢谢。',
                );
                break;
            // 'SMS_4451031' => '经销商您好，您的订单：{$data["order_id"]}，总部已经为您发货，物流为：{$data["express_name"]}-{$data["express_no"]}。到货后请在App内确认收货，谢谢。',
            
            // 商户进货（经销商）
            case 'store_stock_dealer' :
                $template = array(
                    'res_name'     => 'store_stock_dealer',
                    'title' => '经销商您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，正在等待您处理、请登录客户端查看详情。',
                );
                break;
            // 'SMS_4461178' => '经销商您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，正在等待您处理、请登录客户端查看详情。',
            
            // 商户进货（告知签约的市场人员）new
            case 'store_stock_marketing' :
                $template = array(
                    'res_name'     => 'store_stock_marketing',
                    'title' => '{$data["name"]}您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，正在等待经销商决策配送处理方式、请在24小时内留意是否需要送货的短信及App通知。',
                );
                break;
            // 'SMS_4391334' => '{$data["name"]}您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，正在等待经销商决策配送处理方式、请在24小时内留意是否需要送货的短信及App通知。',
            
            // 商户进货 经销商指派给了第三方（告知签约的市场人员）new
            case 'store_stock_person_marketing' :
                $template = array(
                    'res_name'     => 'store_stock_person_marketing',
                    'title' => '{$data["marketing_name"]}您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，经销商指派{$data["people_name"]}替代你完成配送、如有疑问 请联系：{$data["phone_num"]}。',
                );
                break;
            // 'SMS_4480891' => '{$data["marketing_name"]}您好，{$data["store_name"]}有新的订单：{$data["order_id"]}，经销商指派{$data["people_name"]}替代你完成配送、如有疑问 请联系：{$data["phone_num"]}。',
            
            // 撤销订单（店主）
            case 'store_cancel_store' :
                $template = array(
                    'res_name'     => 'store_cancel_store',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}已撤销，您可以重新下单。',
                );
                break;
            // 'SMS_4456110' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}已撤销，您可以重新下单。',
            
            // 撤销订单（经销商）
            case 'dealer_cancel' :
                $template = array(
                    'res_name'     => 'dealer_cancel',
                    'title' => '经销商您好，{$data["store_name"]}的订单：{$data["order_id"]}已撤销，本单无需配送。',
                );
                break;
            // 'SMS_4406021' => '经销商您好，{$data["store_name"]}的订单：{$data["order_id"]}已撤销，本单无需配送。',
            
                
            // 商家主动撤销订单（市场专员） 
            case 'store_cancel_marketing' :
                $template = array(
                'res_name'     => 'store_cancel_marketing',
                'title' => '{$data["name"]}小伙伴您好，{$data["store_name"]}的订单：{$data["order_id"]}已撤销，本单无需配送。',
                );
                break;
            //  【市场人员名】小伙伴您好，【商家名】的订单：【订单号】已撤销，本单无需配送。
                
            // 选择发货（店主，经销商发货）
            case 'dealer_delivery_store' :
                $template = array(
                    'res_name'     => 'dealer_delivery',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排为您送货，如有疑问，请联系经销商的手机号码：{$data["phone_num"]}。',
                );
                break;
            // 'SMS_4416004' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排为您送货，如有疑问，请联系经销商的手机号码：{$data["phone_num"]}。',
            
            // 选择发货（店主，经销商安排市场人员发货）
            case 'marketing_delivery_store' :
                $template = array(
                    'res_name'     => 'marketing_delivery',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排”市场专员 {$data["name"]}“为您送货，如有疑问请联系手机号码：{$data["phone_num"]}。',
                );
                break;
            // 'SMS_4421161' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排”市场专员 {$data["name"]}“为您送货，如有疑问请联系手机号码：{$data["phone_num"]}。',
            
            // 选择发货（店主经销商安排指定人员发货）
            case 'person_delivery_store' :
                $template = array(
                    'res_name'     => 'person_delivery',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排”指定人员 {$data["name"]}“为您送货，如有疑问请联系手机号码：{$data["phone_num"]}。',
                );
                break;
            // 'SMS_4480892' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排”指定人员 {$data["name"]}“为您送货，如有疑问请联系手机号码：{$data["phone_num"]}。',
            
            // 选择发货（小伙伴）
            case 'dealer_assign_marketing_marketing' :
                $template = array(
                    'res_name'     => 'marketing_get_delivery_message',
                    'title' => '{$data["name"]}小伙伴您好，{$data["store_name"]}的订单：{$data["order_id"]}，经销商已经安排由您送货，请登录客户端查看订单详情并及时处理。',
                );
                break;
            // 'SMS_4401157' => '{$data["name"]}小伙伴您好，{$data["store_name"]}的订单：{$data["order_id"]}，经销商已经安排由您送货，请登录客户端查看订单详情并及时处理。',
            
            // 选择发货（指定人员）
            case 'person_get_delivery_message_person' :
                $template = array(
                    'res_name'     => 'person_get_delivery_message',
                    'title' => '{$data["name"]}您好，因送货需要，{$data["store_name"]}的订单：{$data["order_id"]}，经销商{$data["dealer_name"]}已经安排由您送货，查看订单请访问并输入订单号查询任务具体内容：http://order.baobaot.com 注意：送货后请务必让商家在其客户端确认收货。',
                );
                break;
            // ' SMS_4765594' => '{$data["name"]}您好，因送货需要，{$data["store_name"]}的订单：{$data["order_id"]}，经销商{$data["dealer_name"]}已经安排由您送货，查看订单请访问并输入订单号查询任务具体内容：【H5地址】注意：送货后请务必让商家在其客户端确认收货。',
            
            // 确认处理（店主）
            case 'store_confirm' :
                $template = array(
                    'res_name'     => 'store_confirm',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员 {$data["phone_num"]}。',
                );
                break;
            // 'SMS_4461179' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员 {$data["phone_num"]}。',
            
            // 市场人员确认处理（经销商） 
            case 'marketing_confirm_dealer' :
                $template = array(
                'res_name'     => 'marketing_confirm_dealer',
                'title' => '经销商您好，{$data["store_name"]}的订单：{$data["order_id"]}，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员{$data["phone_num"]}。',
                );
                break;
            //  经销商您好，【商家名】的订单：【订单号】，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员【市场专员手机号】。 ,
                
            // 配送完成（店主） [ 市场人员确认送达（商家） ]
            case 'marketing_confirm_delivery_finished_store' :
                $template = array(
                'res_name'     => 'marketing_confirm_delivery_finished_store',
                'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，已经确认到货，如有疑问请联系：经销商 {$data["dealer_phone_num"]} 或市场人员：{$data["marketing_phone_num"]}。',
                );
                break;
            //  【商家名】店主您好，您的订单：【订单号】，已经确认到货，如有疑问请联系：经销商 【经销商手机号】或市场人员：【市场人员手机号】。 ,
            
            // 市场A签的商户经销商指派B处理（市场人员A） 
            case 'dealer_assign_marketing_b_marketing' :
                $template = array(
                'res_name'     => 'dealer_assign_marketing_b_marketing',
                'title' => '{$data["a_name"]}小伙伴您好，{$data["store_name"]}订单：{$data["order_id"]}，经销商已经安排“{$data["b_name"]}”负责送货。请登录客户端查看进展。',
                );
                break;
            ///  【市场人员A名】小伙伴您好，【商家名】订单：【订单号】，经销商已经安排”【市场人员B名】“负责送货。请登录客户端查看进展。 

            // 市场人员B确认处理（经销商） 
            case 'marketing_b_confirm_dealer' :
                $template = array(
                'res_name'     => 'marketing_b_confirm_dealer',
                'title' => '经销商您好，{$data["store_name"]}的订单：{$data["order_id"]}，{$data["name"]}已经开始送货正在前往门店，如有疑问请联系：{$data["phone_num"]}。',
                );
                break;
            // 经销商您好，【商家名】的订单：【订单号】，【市场人员B名】已经开始送货正在前往门店，如有疑问请联系：【市场专员B手机号】。 
                
                
            // 市场人员B确认处理（商户） 
            case 'marketing_b_confirm_store' :
                $template = array(
                'res_name'     => 'marketing_b_confirm_store',
                'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，{$data["name"]}已经开始送货正在前往门店，如有疑问请联系：{$data["phone_num"]}。',
                );
                break;
            // 【商家名】店主您好，您的订单：【订单号】，【市场人员B名】已经开始送货正在前往门店，如有疑问请联系：【市场专员B手机号】。    
            
            // 商家确认送达（市场人员） 
            case 'store_confirm_delivery_finished_marketing' :
                $template = array(
                'res_name'     => 'store_confirm_delivery_finished_marketing',
                'title' => '{$data["name"]}小伙伴您好，{$data["store_name"]}的订单：{$data["order_id"]}，已经由商家确认到货。如需回访请联系：{$data["phone_num"]} ',
                );
                break;
            // 【市场人员名】小伙伴您好，【商家名】的订单：【订单号】，已经由商家确认到货。如需回访请联系：【商家手机号】     
            
                
            // 确认处理（经销商）
            case 'dealer_confirm' :
                $template = array(
                    'res_name'     => 'dealer_confirm',
                    'title' => '经销商，{$data["store_name"]}您好，订单：{$data["order_id"]}，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员 {$data["phone_num"]}。',
                );
                break;
            // 'SMS_4471416' => '经销商，{$data["store_name"]}您好，订单：{$data["order_id"]}，市场专员已经开始送货正在前往门店，如有疑问请联系：市场专员 {$data["phone_num"]}。',
            
            // 配送完成（店主）
            case 'store_delivery_finished' :
                $template = array(
                    'res_name'     => 'store_delivery_finished',
                    'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，已经确认到货，如有疑问请联系：经销商 {$data["phone_num"]}。',
                );
                break;
            // 'SMS_4401158' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，已经确认到货，如有疑问请联系：经销商 {$data["phone_num"]}。',
            
            // 配送完成（经销商）
            case 'dealer_delivery_finished_dealer' :
                $template = array(
                    'res_name'     => 'dealer_delivery_finished',
                    'title' => '经销商您好，{$data["store_name"]}订单：{$data["order_id"]}，已经确认到货，如有疑问请联系市场专员 {$data["marketing_phone_num"]}。或联系商家：{$data["store_phone_num"]}',
                );
                break;
            // 'SMS_4431089' => '经销商您好，{$data["store_name"]}订单：{$data["order_id"]}，已经确认到货，如有疑问请联系市场专员 {$data["marketing_phone_num"]}。或联系商家：{$data["store_phone_num"]}',
            
            // 配送完成（经销商指定人员）
            case 'person_delivery_finished_dealer' :
                $template = array(
                    'res_name'     => 'person_delivery_finished',
                    'title' => '经销商您好，{$data["store_name"]}订单：{$data["order_id"]}，已经确认到货，如有疑问请联系：第三方配送人员 {$data["phone_num"]}。',
                );
                break;
            // 'SMS_4396095' => '经销商您好，{$data["store_name"]}订单：{$data["order_id"]}，已经确认到货，如有疑问请联系：第三方配送人员 {$data["phone_num"]}。',
            
            // 商户向经销商进货-商户确认送达（经销商） 
            case 'store_stock_store_confirm_dealer' :
                $template = array(
                    'res_name'     => 'store_stock_store_confirm_dealer',
                    'title' => '经销商您好，{$data["store_name"]}的订单{$data["order_id"]}，已经确认到货，如有疑问请联系：{$data["phone_num"]}。',
                );
                break;
            // 经销商您好，【商家名】的订单【订单号】，已经确认到货，如有疑问请联系：【商家手机号】。 
                
            // 经销商指派签约商户市场人员处理（商家） 
            case 'dealer_assign_marketing_store' :
                $template = array(
                'res_name'     => 'dealer_assign_marketing_store',
                'title' => '{$data["store_name"]}店主您好，您的订单：{$data["order_id"]}，经销商已经安排“市场专员{$data["name"]}”为您送货，如有疑问请联系手机号码：{$data["phone_num"]}。',
                );
                break;
            
            // 新增市场人员
            case 'add_marketing' :
                $template = array(
                    'res_name'     => 'add_marketing',
                    'title' => '{$data["name"]}欢迎成为抱抱堂市场人员，您的帐号密码为：帐号:{$data["user_name"]}，密码{$data["code"]}，请到 http://123.baobaot.com 下载客户端并登陆操作。',
                );
                break;
            // 'SMS_4421162' => '{$data["name"]}欢迎成为抱抱堂市场人员，您的帐号密码为：帐号:{$data["user_name"]}，密码{$data["code"]}，请到 http://123.baobaot.com 下载客户端并登陆操作。',
            
            // 签约门店（门店）
            case 'store_sign' :
                $template = array(
                    'res_name'     => 'store_sign',
                    'title' => '{$data["store_name"]}欢迎成为抱抱堂门店，您的帐号密码为：帐号:{$data["user_name"]}，密码{$data["code"]}，请到 http://123.baobaot.com 下载客户端并登陆操作。',
            );
            // 'SMS_4401159' => '{$data["store_name"]}欢迎成为抱抱堂门店，您的帐号密码为：帐号:{$data["user_name"]}，密码{$data["code"]}，请到 http://123.baobaot.com 下载客户端并登陆操作。',
            
            // 市场人员签约门店(发给经销商)
            case 'marketing_sign_dealer' :
                $template = array(
                    'res_name'     => 'marketing_sign_dealer',
                    'title' => '经销商您好,您新增一个门店{$data["store_name"]}，由:{$data["name"]}完成签约,请登录管理端查看详情。',
                );
                break;
            // 'SMS_4401160' => '经销商您好,您新增一个门店{$data["store_name"]}，由:{$data["name"]}完成签约,请登录管理端查看详情。',
            
            // 签约门店(发给市场人员)  new 2种  【市场或经销商人名】
            case 'sign_store' :
                $template = array(
                    'res_name'     => 'sign_store',
                    'title' => '{$data["name"]},你已新签约一个门店{$data["store_name"]}，请登录管理端查看详情，并协助商家安装及了解如何使用商家客户端。',
                );
                break;
            // 'SMS_4441149' => '{$data["name"]},你已新签约一个门店{$data["store_name"]}，请登录管理端查看详情，并协助商家安装及了解如何使用商家客户端。',
            
            // 新增经销商
            case 'add_dealer' :
                $template = array(
                    'res_name'     => 'add_dealer',
                    'title' => '{$data["name"]}，欢迎成为抱抱堂的区域合作伙伴，您的帐号为  {$data["user_name"]} 密码为 {$data["code"]}，请到 http://123.baobaot.com 下载客户端并登录操作。',
                );
                break;
            // 'SMS_4720717' => '{$data["name"]}欢迎成为抱抱堂的经销商，您的帐号密码为：帐号{$data["user_name"]}，密码:{$data["code"]}，请到 http://123.baobaot.com 下载客户端并登陆操作。',
            
            // 市场人员调价
            case 'marketing_modify_price_dealer' :
                $template = array(
                    'res_name'     => 'marketing_modify_price',
                    'title' => '经销商您好,您的市场人员{$data["name"]}已经为{$data["store_name"]}调价,请登录客户端查看。',
                );
                break;
            // 'SMS_4421163' => '经销商您好,您的市场人员{$data["name"]}已经为{$data["store_name"]}调价,请登录客户端查看。',

            // 后台积分
            case "score":
                $template = array(
                    "title"    => "【积分】后台为您人工添加了{$data['score']}积分,请查收!",
                    "res_name" => "score"
                    );
                break;
            // 后台公告
            case "notice":
                $template = array(
                    "title"    => "【公告】{$data['title']}",
                    "res_name" => "notice"
                    );
                break;
            // 后台活动
            case "event":
                $template = array(
                    "title"    => "【活动】{$data['title']}",
                    "res_name" => "event"
                );
                break;
            // 后台核销
            case "group":
                $template = array(
                    "title"    => "【核销】{$data['title']}",
                    "res_name" => "group"
                    );
                break;
            // 后台到货
            case "arrival":
                $template = array(
                    "title"    => "【到货】{$data['title']}",
                    "res_name" => 'arrival'
                    );
                break;
        }

        return $template;

    }


    /**
     * 将消息写入到消息中心
     */
    public static function create_message($title, $res_name ,$preview_pic)
    {
        $message['title']       = $title;
        $message['res_name']    = $res_name;
        $message['preview_pic'] = $preview_pic;
        $message['add_time']    = date('Y-m-d H:i:s');
        return _model('message_center')->create($message);
    }


    /**
     * 消息更新
     */
    public static function update_message($message_id, $data)
    {
        if (!$message_id) {
        	return false;
        }

        if (!is_array($data)) {
        	return false;
        }

        return _model('message_center')->update($message_id, $data);
    }
    
    

    /**
     * 消息更新(条件是数组)
     */
    public static function update_message_by_filter($filter, $data)
    {
        if (!is_array($filter) || !is_array($data)) {
        	return false;
        }

        return _model('message_center')->update($filter, $data);

    }
    
    /**
     * 活动变更消息中心更新
     */
    public static function update_event_message($message_id, $title, $preview_pic = '')
    {
        if (!$message_id) {
        	return false;
        }
        $message = array();
        $message['title'] = $title;
        $message['url'] = '';
        $message['content'] = '';
        if ($preview_pic) {
        	$message['preview_pic'] = $preview_pic;
        }
        
        return _model('message_center')->update($message_id, $message);
    }

    
    


}

?>
